#ifndef WIDGET_H
#define WIDGET_H
#include <iostream>
#include <QWidget>
#include <QKeyEvent>
#include <QPaintEvent>
#include <QPainter>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

//思路:
//0.蛇的表示
//长度可变的数组
//1.按键处理
//2.使用定时器
// 2.1 connect
// 2.2 start timer
// 2.3 achive timeout
//3.渲染

    enum Direct{
    DIR_LEFT,
    DIR_RIGHT,
    DIR_UP,
    DIR_DOWN

};

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
 protected:
    //按键处理
    void keyPressEvent(QKeyEvent *event);

   //渲染绘图
    void paintEvent(QPaintEvent *event);


    void deleteLast();
    void addTop();
    void addDown();
    void addRight();
    void addLeft();
    void addNewReward();
    int checkContact();
private:
    Ui::Widget *ui;
    int MoveFlag=DIR_UP;
    bool gameStart=false;
    //创建定时器
    QTimer *timer;
    int time=200;//超出时间间隔 单位毫秒
    //蛇
    QList<QRectF> snake;
    //奖品
    QRectF rewardNode;
    //小方块的宽与高
    int nodeWidth=20;
    int nodeHeight=20;
protected slots:
    void timeout();



};
#endif // WIDGET_H
